/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package BO;

import java.util.Vector;

/**
 *
 * @author olivierm
 */
public abstract class Client extends Personne{

    //*******************************************************************
    //Variables
    //*******************************************************************
    
    private int _numeroTva = 0;
    private int _numeroClient = 0;
    private Vector<Intervention> _listeIntervention;
    
    //*******************************************************************
    //Constructeurs
    //*******************************************************************
    
    /**
     * 
     * @param nom (référencé par la classe personne)
     * @param prenom (référencé par la classe personne)
     * @param adresse (référencé par la classe personne)
     * @param numClient (référencé par cette classe)
     * @param numTVA (référencé par cette classe)
     */
    public Client(String nom, String prenom, Adresse adresse,int numClient, int numTVA){
        super(nom, prenom, adresse);
        this._numeroClient = numClient;
        this._numeroTva = numTVA;
        this._listeIntervention = new Vector<Intervention>();
    }
    
    /**
     * 
     * @param nom (référencé par la classe personne)
     * @param prenom (référencé par la classe personne)
     * @param adresse (référencé par la classe personne)
     * @param numTVA (référencé par cette classe)
     */
    public Client(String nom, String prenom, Adresse adresse,int numTVA){
        super(nom, prenom, adresse);
        this._numeroTva = numTVA;
        this._listeIntervention = new Vector<Intervention>();
    }    
    
    /**
     * 
     * @param nom (référencé par la classe personne)
     * @param prenom (référencé par la classe personne)
     * @param adresse (référencé par la classe personne)
     */
    public Client(String nom, String prenom, Adresse adresse){
        super(nom, prenom, adresse);
        this._listeIntervention = new Vector<Intervention>();
    }
    
    //*******************************************************************
    //Getters et Setters
    //*******************************************************************

    public Vector<Intervention> get_listeIntervention() {
        return _listeIntervention;
    }

    public void set_listeIntervention(Vector<Intervention> _listeIntervention) {
        this._listeIntervention = _listeIntervention;
    }

    public int get_numeroClient() {
        return _numeroClient;
    }

    public void set_numeroClient(int _numeroClient) {
        this._numeroClient = _numeroClient;
    }

    public int get_numeroTva() {
        return _numeroTva;
    }

    public void set_numeroTva(int _numeroTva) {
        this._numeroTva = _numeroTva;
    }    
    
    //*******************************************************************
    //Méthode d'instance
    //******************************************************************* 
    
    public synchronized boolean ajouterIntervention(Intervention intervention){
        if(intervention != null){
            this._listeIntervention.add(intervention);
        }
        return false;
    }
    
    public synchronized boolean supprimerIntervention(Intervention intervention){
        if(intervention != null){
            this._listeIntervention.remove(intervention);
            return true;
        }
        return false;
    }
    
    public synchronized Intervention rechercherInterventionNumClient(int numeroIntervention){
        if(numeroIntervention < 0){
            for (int i = 0 ; i < this._listeIntervention.size(); i++){
                Intervention intervention = this._listeIntervention.get(i);
                //if(intervention.)
            }
        }
        return null;
    }    
    
    //*******************************************************************
    //Méthode de classe
    //*******************************************************************
    
}
